home *** CD-ROM | disk | FTP | other *** search
/ LOGIC Apps / Logic-APPLE_II_APPS.iso / mac / LOGIC Apple II 5.25" Library - ProDOS / PRO050.dsk / RPT.bas < prev    next >
BASIC Source File  |  2012-02-16  |  19KB  |  509 lines

  1. 10  GOSUB 62000
  2. 20 D$ =  CHR$(4)
  3. 30  ONERR  GOTO 50000
  4. 40  PRINT D$;"PR#3"
  5. 2000  GOTO 4000
  6. 2200  REM  READ TIME
  7. 2205  IF FC = 1  THEN TM$ = "": RETURN 
  8. 2210  PRINT D$;"IN#4": PRINT D$;"PR#4"
  9. 2220  INPUT ":";CK$
  10. 2230  PRINT D$;"IN#0": PRINT D$;"PR#0"
  11. 2240  PRINT D$;"PR#3"
  12. 2260 TM$ =  MID$ (CK$,12,2) +":" + MID$ (CK$,15,2)
  13. 2270 X$ =  LEFT$(TM$,2):X =  VAL( MID$ (CK$,12,2))
  14. 2280  IF X <12  THEN TM$ = TM$ +"  A.M.": RETURN 
  15. 2290  IF X <13  THEN TM$ = TM$ +"  P.M.": RETURN 
  16. 2300 X = X -12:X$ =  STR$(X):TM$ = X$ + RIGHT$(TM$,3) +"  P.M."
  17. 2310  RETURN 
  18. 4000  REM  MAIN MENU
  19. 4010  GOSUB 2200
  20. 4020  HOME 
  21. 4030  HTAB 37: VTAB 1: PRINT "REPORTS"
  22. 4040  HTAB 35: PRINT "==========="
  23. 4050  HTAB 30: VTAB 5: PRINT "A)  sort ALL entries
  24. 4060  HTAB 30: PRINT "D)  sort by DEPOSITS"
  25. 4070  HTAB 30: PRINT "E)  ENTRIES to CheckWriter"
  26. 4080  HTAB 30: PRINT "G)  sort by CATEGORIES"
  27. 4090  HTAB 30: PRINT "H)  sort by MONTHS"
  28. 4100  HTAB 30: PRINT "I)  LIST current transactions"
  29. 4110  HTAB 30: PRINT "K)  CALCULATOR"
  30. 4120  HTAB 30: PRINT "M)  MAIN MENU"
  31. 4130  HTAB 30: PRINT "P)  sort by PAYEE"
  32. 4140  HTAB 30: PRINT "Q)  QUIT"
  33. 4150  HTAB 30: PRINT "U)  sort by UNCLEARED TRANSACTIONS"
  34. 4160  HTAB 30: PRINT "T)  EDIT an old transaction"
  35. 4170  HTAB 69: VTAB 23: PRINT TM$
  36. 4180  HTAB 40: VTAB 19: GET X$
  37. 4190  IF X$ = "M"  OR X$ = "m"  THEN 40000
  38. 4200  IF X$ = "T"  OR X$ = "t"  THEN 55000
  39. 4210  IF X$ = "G"  OR X$ = "g"  THEN 25000
  40. 4220  IF X$ = "K"  OR X$ = "k"  THEN FK = 2: GOTO 45000
  41. 4230  IF X$ = "H"  OR X$ = "h"  THEN 30000
  42. 4240  IF X$ = "P"  OR X$ = "p"  THEN 15000
  43. 4250  IF X$ = "I"  OR X$ = "i"  THEN 41000
  44. 4260  IF X$ = "E"  OR X$ = "e"  THEN 42000
  45. 4270  IF X$ = "Q"  OR X$ = "q"  THEN 43000
  46. 4280  IF X$ = "A"  OR X$ = "a"  OR X$ = "D"  OR X$ = "d"  OR X$ = "U"  OR X$ = "u"  THEN 4500
  47. 4290  GOTO 4000
  48. 4500  VTAB 17: CALL  -958
  49. 4510  HTAB 21: VTAB 19: PRINT "DISPLAY DATA ON <S>CREEN OR <P>RINTER?"
  50. 4520  HTAB 40: VTAB 21: GET P$
  51. 4530  IF P$ = "S"  OR P$ = "s"  THEN PF = 0: GOTO 4560
  52. 4540  IF P$ = "P"  OR P$ = "p"  THEN PF = 1: GOTO 4560
  53. 4550  IF P$ < >"p"  THEN 4000
  54. 4560  IF X$ = "A"  OR X$ = "a"  THEN 20000
  55. 4570  IF X$ = "D"  OR X$ = "d"  THEN 10000
  56. 4580  IF X$ = "U"  OR X$ = "u"  THEN 9000
  57. 9000  REM  UNRCONCILED
  58. 9010 V = 5: HOME 
  59. 9020  IF PF = 1  THEN  PRINT D$;"PR#1"
  60. 9030  HTAB 20: VTAB 1: PRINT "------LIST OF UNRECONCILED TRANSACTIONS-----"
  61. 9040 F = 1: GOTO 10040
  62. 10000  REM  LOAD MAIN DATA (F=1 UNRECONCILED)
  63. 10010 V = 5: HOME 
  64. 10020  IF PF = 1  THEN  PRINT D$;"PR#1"
  65. 10030  HTAB 25: VTAB 1: PRINT "------LIST OF ALL DEPOSITS------"
  66. 10040  VTAB 3: PRINT "TR#";
  67. 10050  HTAB 6: PRINT "DATE";
  68. 10060  HTAB 16: PRINT "CK#";
  69. 10070  HTAB 22: PRINT "PAY TO:";
  70. 10080  HTAB 48: PRINT "R";
  71. 10090  HTAB 51: PRINT "AMOUNT";
  72. 10100  HTAB 61: PRINT "CAT";
  73. 10110  HTAB 70: PRINT "MEMO"
  74. 10120  VTAB 4: PRINT "-------------------------------------------------------------------------------"
  75. 10130  IF PF = 1  THEN  PRINT D$;"PR#0"
  76. 10140  POKE 34,4
  77. 10150  PRINT D$;"OPEN /RAM/MAIN.DATA,L$96"
  78. 10160 ZN = FTN% -1
  79. 10170  FOR I = 1 TO ZN
  80. 10180 TN = I
  81. 10185  VTAB V
  82. 10190  PRINT D$;"READ /RAM/MAIN.DATA,R";TN
  83. 10200  INPUT TN%
  84. 10210  INPUT DT$
  85. 10220  INPUT CN$
  86. 10230  IF F = 1  THEN 10250
  87. 10240  IF CN$ < >"*"  THEN 10700
  88. 10250  INPUT AMT$
  89. 10260  GOSUB 63000: LET PY$ = IN$
  90. 10270  INPUT R$
  91. 10280  IF F = 1  THEN F = 1: IF R$ = "R"  THEN 10700
  92. 10290  INPUT CTG$
  93. 10300  GOSUB 63000: LET MEM$ = IN$
  94. 10500  REM  PRINT
  95. 10510  IF PF = 1  THEN  PRINT D$;"PR#1"
  96. 10520  VTAB V: PRINT TN%;
  97. 10530  HTAB 6: PRINT DT$;
  98. 10540  HTAB 16: PRINT CN$;
  99. 10550  HTAB 22: PRINT  LEFT$(PY$,25);
  100. 10560  HTAB 48: PRINT R$;
  101. 10570 AMT =  VAL(AMT$): IF AMT <0  THEN AMT =  -1 *AMT
  102. 10580 J = AMT *100:Z$ =  STR$( INT(J +.01)): IF  LEN(Z$) = 1  THEN Z$ = "0" +Z$
  103. 10590 Y =  LEN(Z$) -2
  104. 10600  IF Y <0  THEN Z$ = AMT$
  105. 10610  IF Y < = 0  THEN Y = 1
  106. 10620 H = 56 -Y
  107. 10630  HTAB H: PRINT  INT(AMT +.001);"."; RIGHT$(Z$,2);
  108. 10640  IF F = 1  THEN TL = TL - VAL(AMT$): GOTO 10660
  109. 10650 TL = TL +AMT
  110. 10660  HTAB 61: PRINT CTG$;
  111. 10670  IF PF = 1  THEN  HTAB 70: PRINT  LEFT$(MEM$,10): PRINT D$;"PR#0": GOTO 10690
  112. 10680  HTAB 70: PRINT  LEFT$(MEM$,10);
  113. 10690 V = V +1: IF V = 23  THEN V = 22: CALL  -912
  114. 10700  NEXT 
  115. 10710  PRINT D$;"CLOSE /RAM/MAIN.DATA"
  116. 10720  REM  PRINT
  117. 10730  IF PF = 1  THEN  PRINT D$;"PR#1": VTAB V: GOTO 10750
  118. 10740  VTAB V: PRINT : VTAB V
  119. 10750  PRINT "------------------------------------------------------------------------------"
  120. 10755 T = TL
  121. 10760  IF TL <0  THEN T = TL * -1
  122. 10770 A =  INT(T +.001):A$ =  STR$(A)
  123. 10772 J = T *100:B$ =  STR$( INT(J +.01)): IF  LEN(B$) = 1  THEN B$ = "0" +B$
  124. 10775 TL$ = A$ +"." + RIGHT$(B$,2)
  125. 10780  HTAB 22: PRINT "TOTAL";
  126. 10783 H = 56 - LEN(B$) +2
  127. 10785  IF TL <0  THEN  HTAB H -1: PRINT "-";TL$: GOTO 10800
  128. 10790  HTAB H: PRINT TL$
  129. 10800  IF PF = 1  THEN  PRINT : PRINT D$;"PR#0":PF = 0
  130. 10810 TL = 0:T = 0
  131. 10820  HTAB 79: GET X$
  132. 10830  POKE 34,0
  133. 10840  IF F = 1  THEN F = 0
  134. 10850  GOTO 4000
  135. 15000  REM  BY PAYEE
  136. 15010  HOME 
  137. 15020  HTAB 18: VTAB 2: PRINT "ENTER AS MANY LETTERS OF PAYEE'S NAME AS YOU WISH"
  138. 15030  HTAB 37: VTAB 4: GOSUB 63000: LET TP$ = IN$
  139. 15040  HTAB 21: VTAB 10: PRINT "DISPLAY DATA ON <S>CREEN OR <P>RINTER?"
  140. 15050  HTAB 40: VTAB 12: GET P$
  141. 15060  IF P$ = "S"  OR P$ = "s"  THEN PF = 0: GOTO 15090
  142. 15070  IF P$ = "P"  OR P$ = "p"  THEN PF = 1: GOTO 15090
  143. 15080  IF P$ < >"p"  THEN 15050
  144. 15090  HOME 
  145. 15095  IF PF = 1  THEN  PRINT D$;"PR#1"
  146. 15100  HTAB 25: VTAB 1: PRINT "------TRANSACTIONS BY PAYEE------"
  147. 15110 F = 1:V = 5
  148. 15120  GOTO 20040
  149. 15130 F = 0: GOTO 4000
  150. 20000  REM  LOAD MAIN DATA (F=1 PAYEE)
  151. 20010 V = 5: HOME 
  152. 20020  IF PF = 1  THEN  PRINT D$;"PR#1"
  153. 20030  HTAB 25: VTAB 1: PRINT "-----LIST OF ALL TRANSACTIONS-----"
  154. 20040  VTAB 3: PRINT "TR#";
  155. 20050  HTAB 6: PRINT "DATE";
  156. 20060  HTAB 16: PRINT "CK#";
  157. 20070  HTAB 22: PRINT "PAY TO:";
  158. 20080  HTAB 48: PRINT "R";
  159. 20090  HTAB 51: PRINT "AMOUNT";
  160. 20100  HTAB 61: PRINT "CAT";
  161. 20110  HTAB 70: PRINT "MEMO"
  162. 20120  VTAB 4: PRINT "-------------------------------------------------------------------------------"
  163. 20130  POKE 34,4
  164. 20140  IF PF = 1  THEN  PRINT D$;"PR#0"
  165. 20150  PRINT D$;"OPEN /RAM/MAIN.DATA,L$96"
  166. 20160 ZN = FTN% -1
  167. 20170  FOR I = 1 TO ZN
  168. 20180 TN = I
  169. 20185  VTAB V
  170. 20190  PRINT D$;"READ /RAM/MAIN.DATA,R";TN
  171. 20200  INPUT TN%
  172. 20210  INPUT DT$
  173. 20220  INPUT CN$
  174. 20230  INPUT AMT$
  175. 20240  GOSUB 63000: LET PY$ = IN$
  176. 20250  IF F = 1  THEN F = 1: IF TP$ < > LEFT$(PY$, LEN(TP$))  THEN 20690
  177. 20255  INPUT R$
  178. 20260  INPUT CTG$
  179. 20270  GOSUB 63000: LET MEM$ = IN$
  180. 20500  REM  PRINT
  181. 20510  IF PF = 1  THEN  PRINT D$;"PR#1"
  182. 20520  VTAB V: PRINT TN%;
  183. 20530  HTAB 6: PRINT DT$;
  184. 20540  HTAB 16: PRINT CN$;
  185. 20550  HTAB 22: PRINT  LEFT$(PY$,25);
  186. 20560  HTAB 48: PRINT R$;
  187. 20570 AMT =  VAL(AMT$): IF AMT <0  THEN AMT =  -1 *AMT
  188. 20580 J = AMT *100:Z$ =  STR$( INT(J +.01)): IF  LEN(Z$) = 1  THEN Z$ = "0" +Z$
  189. 20590 Y =  LEN(Z$) -2
  190. 20600  IF Y <0  THEN Z$ = AMT$
  191. 20610  IF Y < = 0  THEN Y = 1
  192. 20620 H = 56 -Y
  193. 20630  HTAB H: PRINT  INT(AMT +.001);"."; RIGHT$(Z$,2);
  194. 20640 TL = TL - VAL(AMT$)
  195. 20650  HTAB 61: PRINT CTG$;
  196. 20660  IF PF = 1  THEN  HTAB 70: PRINT  LEFT$(MEM$,10): PRINT D$;"PR#0": GOTO 20680
  197. 20670  HTAB 70: PRINT  LEFT$(MEM$,10);
  198. 20680 V = V +1: IF V = 23  THEN V = 22: CALL  -912
  199. 20690  NEXT 
  200. 20700  PRINT D$;"CLOSE /RAM/MAIN.DATA"
  201. 20710  IF PF = 1  THEN  PRINT D$;"PR#1": VTAB V: GOTO 20730
  202. 20720  VTAB V: PRINT : VTAB V
  203. 20730  PRINT "------------------------------------------------------------------------------"
  204. 20732 T = TL
  205. 20735  IF TL <0  THEN T = TL * -1
  206. 20740 A =  INT(T +.001):A$ =  STR$(A)
  207. 20745 J = T *100:B$ =  STR$( INT(J +.01)): IF  LEN(B$) = 1  THEN B$ = "0" +B$
  208. 20750 TL$ = A$ +"." + RIGHT$(B$,2)
  209. 20755  HTAB 22: PRINT "TOTAL";
  210. 20756 H = 56 - LEN(B$) +2
  211. 20757  IF TL <0  THEN  HTAB H -1: PRINT "-";TL$: GOTO 20765
  212. 20760  HTAB H: PRINT TL$
  213. 20765  IF F = 0  THEN  PRINT : HTAB 24: PRINT "TOTAL ACCOUNT BALANCE IS $ ";
  214. 20767  IF F = 0  THEN F = 0: HTAB 59 - LEN(BL$): PRINT BL$
  215. 20770  IF PF = 1  THEN  PRINT : PRINT D$;"PR#0":PF = 0
  216. 20780 TL = 0:T = 0
  217. 20790  HTAB 79: GET X$
  218. 20800  POKE 34,0
  219. 20810  IF F = 1  THEN 15130
  220. 20820  GOTO 4000
  221. 25000  REM  BY CATEGORY (F=1 MONTH)
  222. 25010  HOME 
  223. 25020  HTAB 27: VTAB 5: PRINT "PLEASE ENTER CATEGORY TO SORT"
  224. 25170 IN$ = ""
  225. 25180  HTAB 37 +K: VTAB 8: PRINT IN$;
  226. 25190  GET X$: IF X$ < > CHR$(13)  THEN IN$ = IN$ +X$: GOTO 25220
  227. 25200  GOTO 26000
  228. 25210  HTAB 37: VTAB 8: PRINT YY$: GOTO 25500
  229. 25220  FOR I = 1 TO 40
  230. 25230  IF  LEN(CG$(I)) <1  THEN 25270
  231. 25250  IF IN$ =  LEFT$(CG$(I), LEN(IN$))  THEN K = K +1:YY$ = CG$(I)
  232. 25260  NEXT 
  233. 25270  IF K = 1  THEN K = 0: GOTO 25210
  234. 25280  IF K = 0  THEN 25170
  235. 25290 K = 0: GOTO 25180
  236. 25500  HTAB 21: VTAB 19: PRINT "DISPLAY DATA ON <S>CREEN OR <P>RINTER?"
  237. 25510  HTAB 40: VTAB 21: GET P$
  238. 25520  IF P$ = "S"  OR P$ = "s"  THEN PF = 0: GOTO 26000
  239. 25530  IF P$ = "P"  OR P$ = "p"  THEN PF = 1: GOTO 26000
  240. 25540  IF P$ < >"p"  THEN 25510
  241. 26000  REM  BY CATEGORY - F IS MONTH
  242. 26010 V = 5: HOME 
  243. 26020  IF PF = 1  THEN  PRINT D$;"PR#1"
  244. 26030  HTAB 25: VTAB 1: PRINT "-----TRANSACTIONS BY CATEGORY-----"
  245. 26040  VTAB 3: PRINT "TR#";
  246. 26050  HTAB 6: PRINT "DATE";
  247. 26060  HTAB 16: PRINT "CK#";
  248. 26070  HTAB 22: PRINT "PAY TO:";
  249. 26080  HTAB 48: PRINT "R";
  250. 26090  HTAB 51: PRINT "AMOUNT";
  251. 26100  HTAB 61: PRINT "CAT";
  252. 26110  HTAB 70: PRINT "MEMO"
  253. 26120  VTAB 4: PRINT "-------------------------------------------------------------------------------"
  254. 26130  POKE 34,4
  255. 26140  IF PF = 1  THEN  PRINT D$;"PR#0"
  256. 26150  PRINT D$;"OPEN /RAM/MAIN.DATA,L$96"
  257. 26160 ZN = FTN% -1
  258. 26170  FOR I = 1 TO ZN
  259. 26180 TN = I
  260. 26185  VTAB V
  261. 26190  PRINT D$;"READ /RAM/MAIN.DATA,R";TN
  262. 26200  INPUT TN%
  263. 26210  INPUT DT$
  264. 26220  IF F = 1  THEN F = 1: IF MO$ < > LEFT$(DT$,2)  THEN 26510
  265. 26230  INPUT CN$
  266. 26240  INPUT AMT$
  267. 26250  GOSUB 63000: LET PY$ = IN$
  268. 26255  INPUT R$
  269. 26260  INPUT CTG$
  270. 26270  IF F = 1  THEN 26300
  271. 26280  IF CTG$ < >YY$  THEN 26510
  272. 26300  GOSUB 63000: LET MEM$ = IN$
  273. 26310  REM  PRINT
  274. 26320  IF PF = 1  THEN  PRINT D$;"PR#1"
  275. 26330  VTAB V: PRINT TN%;
  276. 26340  HTAB 6: PRINT DT$;
  277. 26350  HTAB 16: PRINT CN$;
  278. 26360  HTAB 22: PRINT  LEFT$(PY$,25);
  279. 26370  HTAB 48: PRINT R$;
  280. 26380 AMT =  VAL(AMT$): IF AMT <0  THEN AMT =  -1 *AMT
  281. 26390 J = AMT *100:Z$ =  STR$( INT(J +.01)): IF  LEN(Z$) = 1  THEN Z$ = "0" +Z$
  282. 26400 Y =  LEN(Z$) -2
  283. 26410  IF Y <0  THEN Z$ = AMT$
  284. 26420  IF Y < = 0  THEN Y = 1
  285. 26430 H = 56 -Y
  286. 26440  HTAB H: PRINT  INT(AMT +.001);"."; RIGHT$(Z$,2);
  287. 26450 TL = TL - VAL(AMT$)
  288. 26470  HTAB 61: PRINT CTG$;
  289. 26480  IF PF = 1  THEN  HTAB 70: PRINT  LEFT$(MEM$,10): PRINT D$;"PR#0": GOTO 26500
  290. 26490  HTAB 70: PRINT  LEFT$(MEM$,10);
  291. 26500 V = V +1: IF V = 23  THEN V = 22: CALL  -912
  292. 26510  NEXT 
  293. 26520  PRINT D$;"CLOSE /RAM/MAIN.DATA"
  294. 26530  IF PF = 1  THEN  PRINT D$;"PR#1": VTAB V: GOTO 26550
  295. 26540  VTAB V: PRINT : VTAB V
  296. 26550  PRINT "------------------------------------------------------------------------------"
  297. 26552 T = TL
  298. 26555  IF TL <0  THEN T = TL * -1
  299. 26560 A =  INT(T +.001):A$ =  STR$(A)
  300. 26565 J = T *100:B$ =  STR$( INT(J +.01)): IF  LEN(B$) = 1  THEN B$ = "0" +B$
  301. 26568 TL$ = A$ +"." + RIGHT$(B$,2)
  302. 26569 H = 56 - LEN(B$) +2
  303. 26570  HTAB 22: PRINT "TOTAL";
  304. 26577  IF TL <0  THEN  HTAB H -1: PRINT "-";TL$: GOTO 26585
  305. 26580  HTAB H: PRINT TL$
  306. 26585  IF F = 1  THEN F = 0: IF PF = 1  THEN 31000
  307. 26590  IF PF = 1  THEN  PRINT D$;"PR#0":PF = 0: IF BF = 1  THEN PF = 1
  308. 26600 TL = 0:T = 0
  309. 26610  HTAB 79: GET X$
  310. 26620  POKE 34,0
  311. 26630  IF BF < >1  THEN 4000
  312. 26640  IF BF = 1  THEN BF = 0: POKE 216,0: PRINT D$;"CHAIN /RAM/BUD,@18000"
  313. 30000  REM  BY MONTH
  314. 30010  HOME 
  315. 30020  HTAB 19: VTAB 2: PRINT "PLEASE ENTER MONTH TO SORT AS A 2 DIGIT NUMBER"
  316. 30030  HTAB 40: VTAB 4: INPUT "";MO$
  317. 30040  HTAB 21: VTAB 10: PRINT "DISPLAY DATA ON <S>CREEN OR <P>RINTER?"
  318. 30050  HTAB 40: VTAB 12: GET P$
  319. 30060  IF P$ = "S"  OR P$ = "s"  THEN PF = 0: GOTO 30090
  320. 30070  IF P$ = "P"  OR P$ = "p"  THEN PF = 1: GOTO 30090
  321. 30080  IF P$ < >"p"  THEN 30050
  322. 30090  HOME 
  323. 30095  IF PF = 1  THEN  PRINT D$;"PR#1"
  324. 30100  HTAB 25: VTAB 1: PRINT "------TRANSACTIONS BY MONTH------"
  325. 30110 F = 1:V = 5
  326. 30120  GOTO 26040
  327. 30500 F = 0: GOTO 4000
  328. 31000  REM  PRINT ACCOUNT TOTAL
  329. 31010 PF = 0: PRINT D$;"PR#0"
  330. 31020 TL = 0:T = 0
  331. 31030  POKE 34,0
  332. 31040  HOME 
  333. 31050  HTAB 20: VTAB 3
  334. 31060  PRINT "DO YOU WISH TO PRINT CURRENT ACCOUNT TOTAL?"
  335. 31070  HTAB 40: VTAB 5
  336. 31080  GET X$
  337. 31090  IF X$ = "Y"  OR X$ = "y"  THEN 31200
  338. 31100  IF X$ = "N"  OR X$ = "n"  THEN 4000
  339. 31110  GOTO 31040
  340. 31200  PRINT D$;"PR#1"
  341. 31210  PRINT : PRINT : HTAB 15
  342. 31220  PRINT "TOTAL ACCOUNT BALANCE ON ";BDT$;" IS $ ";BL$
  343. 31230  PRINT D$;"PR#0"
  344. 31240  GOTO 4000
  345. 40000  REM  TO MAIN MENU
  346. 40010  POKE 216,0
  347. 40020  PRINT D$;"CHAIN /RAM/CW,@4005"
  348. 41000  REM  TO CURRENT TRANSACTION LIST
  349. 41010  POKE 216,0
  350. 41020  PRINT D$;"CHAIN /RAM/LP,@20000"
  351. 42000  REM  ENTRIES TO CHECKWRITER
  352. 42010  POKE 216,0
  353. 42020  PRINT D$;"CHAIN /RAM/CW,@5005"
  354. 43000  REM  QUIT
  355. 43010  POKE 216,0
  356. 43020  PRINT D$;"CHAIN /RAM/CW,@58000"
  357. 45000  REM  CALCULATOR
  358. 45010  POKE 216,0
  359. 45020  PRINT D$;"CHAIN /RAM/CALC"
  360. 50000  REM  ONERR ROUTINE
  361. 50010  PRINT D$;"CLOSE"
  362. 50020  HOME 
  363. 50030  HTAB 29: VTAB 8
  364. 50040  PRINT "ERROR #"; PEEK(222);" IN LINE "; PEEK(218) + PEEK(219) *256
  365. 50050  IF  PEEK(222) = 5  THEN 50100
  366. 50060  GOTO 50200
  367. 50100  HTAB 18: VTAB 11
  368. 50110  PRINT "YOU HAVE INSUFFICIENT DATA FOR THIS REPORT"
  369. 50200  HTAB 26: VTAB 14
  370. 50210  PRINT "PRESS <ANY KEY> TO CONTINUE"
  371. 50220  HTAB 40: VTAB 16
  372. 50230  GET X$
  373. 50235  POKE 34,0
  374. 50240  CALL  -3288: GOTO 4000
  375. 55000  REM  EDIT A TRANSACTION
  376. 55010  HOME 
  377. 55020  HTAB 26: VTAB 2: PRINT "ENTER # OF TRANSACTION TO REDO"
  378. 55030  HTAB 40: VTAB 4: INPUT "";TN
  379. 55040  IF TN > = KFTN%  THEN  CALL  -958: HTAB 20: VTAB 10: PRINT "TRANSACTION # ";TN;" IS NOT AN OLD TRANSACTION.": HTAB 1: VTAB 11: PRINT "CURRENT TRANSACTIONS CAN BE EDITED AT ENTRIES TO CHECKWRITER FROM THE MAIN MENU.": GOTO 55060
  380. 55050  GOTO 55080
  381. 55060  HTAB 27: VTAB 12: PRINT "PRESS <ANY KEY> TO CONTINUE": HTAB 40: VTAB 14: GET X$
  382. 55070  GOTO 4000
  383. 55080  PRINT D$;"OPEN /RAM/MAIN.DATA,L$96"
  384. 55090  PRINT D$;"READ /RAM/MAIN.DATA,R";TN
  385. 55100  INPUT TN%
  386. 55110  INPUT DT$
  387. 55120  INPUT CN$
  388. 55130  INPUT AMT$
  389. 55140 OMT$ = AMT$
  390. 55150  GOSUB 63000: LET PY$ = IN$
  391. 55155  INPUT R$
  392. 55160  INPUT CTG$
  393. 55170  GOSUB 63000: LET MEM$ = IN$
  394. 55180  HTAB 25: VTAB 7: PRINT "-----EDIT AN OLD TRANSACTION-----"
  395. 55190  VTAB 9: PRINT "TR#";
  396. 55200  HTAB 6: PRINT "DATE";
  397. 55210  HTAB 16: PRINT "CK#";
  398. 55220  HTAB 22: PRINT "PAY TO:";
  399. 55230  HTAB 48: PRINT "R";
  400. 55240  HTAB 51: PRINT "AMOUNT";
  401. 55250  HTAB 61: PRINT "CAT";
  402. 55260  HTAB 70: PRINT "MEMO"
  403. 55270  VTAB 10: PRINT "-------------------------------------------------------------------------------"
  404. 55280  VTAB 11: PRINT TN%;
  405. 55290  HTAB 6: PRINT DT$;
  406. 55300  HTAB 16: PRINT CN$;
  407. 55310  HTAB 22: PRINT PY$;
  408. 55320  HTAB 48: PRINT R$;
  409. 55330 AMT =  VAL(AMT$): IF AMT <0  THEN AMT =  -1 *AMT
  410. 55340 J = AMT *100:Z$ =  STR$( INT(J +.01)): IF  LEN(Z$) = 1  THEN Z$ = "0" +Z$
  411. 55350 Y =  LEN(Z$) -2
  412. 55360  IF Y <0  THEN Z$ = AMT$
  413. 55370  IF Y < = 0  THEN Y = 1
  414. 55380 H = 56 -Y
  415. 55390  HTAB H: PRINT  INT(AMT +.001);"."; RIGHT$(Z$,2);
  416. 55400  HTAB 61: PRINT CTG$;
  417. 55410  HTAB 70: PRINT  LEFT$(MEM$,10)
  418. 55420  IF F = 1  THEN  RETURN 
  419. 55430  PRINT D$;"CLOSE /RAM/MAIN.DATA"
  420. 55440  HTAB 8: VTAB 15: PRINT "WOULD YOU LIKE TO EDIT: <D>ATE, <A>MOUNT, <P>AYEE, <G>CAT, OR <M>EM,": HTAB 25: PRINT "<V>OID A CHECK OR <ESC> TO EXIT": HTAB 40: VTAB 17: GET X$
  421. 55450  IF X$ =  CHR$(27)  THEN 4000
  422. 55454  IF X$ = "V"  OR X$ = "v"  THEN 55800
  423. 55456  IF X$ = "G"  OR X$ = "g"  THEN 55900
  424. 55458  IF X$ = "D"  OR X$ = "d"  OR X$ = "A"  OR X$ = "a"  OR X$ = "P"  OR X$ = "p"  OR X$ = "M"  OR X$ = "m"  THEN 55460
  425. 55459  GOTO 55440
  426. 55460  VTAB 14: CALL  -958
  427. 55470  HTAB 29: VTAB 15: PRINT "ENTER NEW DATA, PRESS<RTN>"
  428. 55480  HTAB 37: VTAB 17: GOSUB 63000: LET Y$ = IN$
  429. 55490  IF X$ = "D"  OR X$ = "d"  THEN DT$ = Y$
  430. 55510  IF X$ = "A"  OR X$ = "a"  THEN AMT$ = Y$:FL = 1: IF CN$ = "*"  THEN Y =  VAL(Y$) * -1:AMT$ =  STR$(Y)
  431. 55520  IF X$ = "P"  OR X$ = "p"  THEN PY$ = Y$
  432. 55535  IF X$ = "M"  OR X$ = "m"  THEN MEM$ = Y$
  433. 55540  HOME 
  434. 55550 F = 1: GOSUB 55180:F = 0: IF R$ = "R"  THEN 55700
  435. 55570  HTAB 21: VTAB 16: PRINT "PRESS <`> TO ENTER THIS DATA OR <ANY KEY> TO EXIT"
  436. 55580  HTAB 40: VTAB 20: GET X$
  437. 55590  IF X$ = "`"  OR X$ = "~"  THEN  VTAB 14: CALL  -958: GOTO 56000
  438. 55600  GOTO 4000
  439. 55700  IF FL < >1  THEN 55570
  440. 55710  HTAB 8: VTAB 16: PRINT "THIS TRANSACTION HAS BEEN RECONCILED.  YOU CANNOT CHANGE THE AMOUNT.":FL = 0: HTAB 40: VTAB 18: GET X$: GOTO 4000
  441. 55800  REM  VOID
  442. 55820 AMT$ = "0.00":PY$ = "Void":CTG$ = "void":FL = 1: GOTO 55540
  443. 55900  REM  GET CATEGORY
  444. 55905  VTAB 14: CALL  -958
  445. 55910  HTAB 30: VTAB 15: PRINT "ENTER NEW CATEGORY DATA"
  446. 55915 K = 0
  447. 55920 IN$ = ""
  448. 55925  HTAB 37 +K: VTAB 17: PRINT IN$;
  449. 55930  GET X$: IF X$ < > CHR$(27)  THEN IN$ = IN$ +X$: GOTO 55945
  450. 55935  GOTO 55000
  451. 55940  HTAB 37: VTAB 17: PRINT CTG$: GOTO 55540
  452. 55945  IF X$ =  CHR$(13)  OR X$ =  CHR$(127)  THEN 55900
  453. 55950  IF X$ =  CHR$(8)  OR X$ =  CHR$(21)  THEN 55900
  454. 55955  IF X$ =  CHR$(10)  OR X$ =  CHR$(11)  THEN 55900
  455. 55960  FOR I = 1 TO 40
  456. 55965  IF  LEN(CG$(I)) <1  THEN 55980
  457. 55970  IF IN$ =  LEFT$(CG$(I), LEN(IN$))  THEN K = K +1:Y$ = CG$(I)
  458. 55975  NEXT 
  459. 55980  IF K = 1  THEN K = 0:CTG$ = Y$: GOTO 55940
  460. 55985  IF K = 0  THEN 55920
  461. 55990 K = 0: GOTO 55925
  462. 56000  PRINT D$;"OPEN /RAM/MAIN.DATA,L$96"
  463. 56010  PRINT D$;"WRITE /RAM/MAIN.DATA,R";TN
  464. 56020  PRINT TN%
  465. 56030  PRINT DT$
  466. 56040  PRINT CN$
  467. 56050  PRINT AMT$
  468. 56060  PRINT PY$
  469. 56070  PRINT R$
  470. 56075  PRINT CTG$
  471. 56080  PRINT MEM$
  472. 56090  PRINT D$;"CLOSE /RAM/MAIN.DATA"
  473. 56100 FBL =  VAL(FBL$)
  474. 56110 FBL = FBL + VAL(OMT$) - VAL(AMT$)
  475. 56120 B = FBL
  476. 56130  IF FBL <0  THEN B = FBL * -1
  477. 56140 A =  INT(B +.001):A$ =  STR$(A)
  478. 56150 J = B *100:B$ =  STR$( INT(J +.01)): IF  LEN(B$) = 1  THEN B$ = "0" +B$
  479. 56160 FBL$ = A$ +"." + RIGHT$(B$,2)
  480. 56170  IF FBL <0  THEN FBL$ = "-" +FBL$
  481. 56180 QWT% = WT%:QCN$ = WCN$:QBL$ = BL$
  482. 56190 BL$ = FBL$:WT% = FTN%:WCN$ = FWCN$
  483. 56200  PRINT D$;"OPEN /RAM/ONGOING.DATA"
  484. 56210  PRINT D$;"WRITE /RAM/ONGOING.DATA"
  485. 56220  PRINT WT%: PRINT BL$: PRINT WCN$
  486. 56230  PRINT D$;"CLOSE /RAM/ONGOING.DATA"
  487. 56240 WT% = QWT%:WCN$ = QCN$:BL$ = QBL$
  488. 56250 BL =  VAL(BL$)
  489. 56260 BL = BL + VAL(OMT$) - VAL(AMT$)
  490. 56270 B = BL
  491. 56280  IF BL <0  THEN B = BL * -1
  492. 56290 A =  INT(B +.001):A$ =  STR$(A)
  493. 56300 J = B *100:B$ =  STR$( INT(J +.01)): IF  LEN(B$) = 1  THEN B$ = "0" +B$
  494. 56310 BL$ = A$ +"." + RIGHT$(B$,2)
  495. 56320  IF BL <0  THEN BL$ = "-" +BL$
  496. 56500  GOTO 55440
  497. 60000  END 
  498. 62000  REM  INPUT ANYTHING
  499. 62010  LET IN$ = "X"
  500. 62020  FOR J = 768 TO 790
  501. 62030  READ I
  502. 62040  POKE J,I
  503. 62050  NEXT J
  504. 62060  DATA  162,0,32,117,253,160,2,138,145,105,200,169,0,145,105,200,169,2,145,105,76,57,213
  505. 62070  RETURN 
  506. 63000  REM  CALL ANYTHING
  507. 63010  CALL 768
  508. 63020 IN$ =  MID$ (IN$,1)
  509. 63030  RETURN